1. Technical Field of the Invention
This invention pertains to the presentation of annotated messages in a user interface. More particularly, it relates to the presentation, in a graphic user interface, of error messages together with user-supplied annotations.
2. Background Art
During application development with most application development tools (such as those in the IBM VisualAge® line), in most languages (such as C++ and Sun Microsystems, Inc.'s Java™), there comes a point where the developer must compile his or her work. If there are errors in the program, the compile will not be successful and an error message will be issued to diagnose each problem so that the developer will have an idea about what the trouble is, and hopefully, how to fix it.
However, there are literally hundreds of reasons why a compile can fail, and so hundreds of compile errors must be created by the designers and developers of the application development tool. This, coupled with the fact that it is very difficult to anticipate all the situations that might cause a specific compile error, results in ambiguous error messages describing the problem, and virtually no help on how the problem can be solved.
Initially, it might seem that the solution is to devote time to writing better error messages, i.e., ones that more accurately describe the problem and how it might be solved. It is not reasonable to expect that designers and developers of the application development tools will anticipate all the possible scenarios that might result in a compiler error, and then give correct advice on how to correct them. There are simply too many of them.
Programmers who have been working with a particular application development tool, or at least a specific compiler, for an extended period of time, will come to recognize certain error messages, and based on previous experience, know what the likely cause and solution to the problem is. All this information is carried in the developer's mind, even though there may be dozens of different error messages for which this is true. In addition, they may recognize a smaller subset of these messages, and have their own interpretations that are specific to the quirks of a particular project that they are working on.
There is a need for a way to help developers offload their need to remember all the specific interpretations of the compiler error messages.
When a compiler error message is shown to the developer, the developer examines the code and fixes the problem. If the developer has difficulty interpreting the error message, the fix takes longer. Once accomplished, however, the developer makes a mental note about that particular error, and as experience with these messages grows, the fixes take less and less time. This is referred to as coming down the learning curve, and there is a great need in the art to accelerate and shorten that learning curve.
With several developers working in the same environment, it is possible that many may encounter the same error messages. Problems encountered by different developers may share common characteristics, and solutions may be similar. There is a need in the art to facilitate the sharing of experience with respect to these problems and solutions.
A developer may be working with a design application or compiler which provides its messages in a technical language which is unfamiliar, or not sufficiently familiar to enable use, and if translated at all, the translations may be poor. There is a need for a way to provide error messages which are meaningful across language barriers.
It would be advantageous for an the invention to provide an improved system, method, computer program product, a program storage device and an article of manufacture for managing messages presented in a user interface.
It would be advantageous for, an invention to provide user-annotated messages, such as error messages, to application developers.
It would be advantageous for an invention to provide an improved system, method, computer program product, a program storage device and an article of manufacture for presenting error messages in a graphic user interface selectively annotated by users.
It would be advantageous for an invention to provide a way to accelerate the learning curve of developers who must rely on error messages to identify and fix application or compile errors.
It would be advantageous for an invention to provide a way for developers to share experience with error message interpretation and application error solutions.
It would be advantageous for an invention to provide a way for developers to work across language barriers in the interpretation of error messages.
It would be advantageous for an invention to provide a way for developers to come quickly down the learning curve without having to rely on their own memories of error messages and solutions.